package com.ereconquista.web;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

import com.ereconquista.dao.LocalidadDAO;
import com.ereconquista.dao.ProvinciaDAO;
import com.ereconquista.modelo.Provincia;
import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;

/**
 *
 * @author Claudio
 */
@ManagedBean(name="provinciaBean")
@ViewScoped
public class ProvinciaBean implements Serializable{

    private ProvinciaDAO provinciaDAO;
    private LocalidadDAO localidadDAO;
    private List<Provincia> lista;
    private Provincia provincia;    

    /** Creates a new instance of ProvinciaBean */
    public ProvinciaBean() {       

    }

    @PostConstruct
    public void init(){
                
        provinciaDAO = new ProvinciaDAO();
        localidadDAO = new LocalidadDAO();
        lista = provinciaDAO.getLista();
//        System.err.println(lista);
    }
    
    public List<Provincia> getLista() {
        return lista;
    }

    public void setLista(List<Provincia> lista) {
        this.lista = lista;
    }    

    public Provincia getProvincia() {
        return provincia;
    }

    public void setProvincia(Provincia provincia) {
        this.provincia = provincia;
    }
    
    public List<Provincia> completeProvincia(String query) {
        
        return provinciaDAO.getProvinciaByNombre(query);
            
    }       
    
    public Converter getConverterProvincia() {
        return new Converter() {

            @Override
            public Object getAsObject(FacesContext context, UIComponent component, String value) {
                if (value.trim().equals("") || value == null) {
                    return null;
                }
                Provincia p = provinciaDAO.getProvincia(value);
                return p;
            }

            @Override
            public String getAsString(FacesContext context, UIComponent component, Object value) {
                if (value == null || value.equals("")) {
                    return "";
                } else {
                    return ((Provincia) value).getCodigo() + "";
                }
            }
        };
    }
}
